草庐IT

c++ - Swig -includeall 除了...

全部标签

c++ - 替代 getch()、gotoxy()、delay()、clrscr()

我有一些为TurboC编译器编写的旧程序源代码。我对它们进行了更改,并希望在适用于Linux和Windows的较新编译器中重新编译它们。所以请告诉我最好的替代函数是什么getch(),delay()/sleep(),clrscr(),gotoxy()用于C和C++。 最佳答案 看看ncurses库,用于Unix兼容系统。 关于c++-替代getch()、gotoxy()、delay()、clrscr(),我们在StackOverflow上找到一个类似的问题:

c++ - 为什么断言宏仅用于调试构建

为什么让assert宏只在调试配置中做一些有用的事情是一种常见的做法?如果它的存在是为了测试不变量和检测编码错误,那么继续在生产软件中实现同样的大繁荣不是更容易吗?我有一些S60背景并且存在__ASSERT_ALWAYS和__ASSERT_DEBUG,后者等同于assert。 最佳答案 断言是为那些应该永远不会发生的事情而创建的,即如果它发生了,那么你的代码中就有一个你需要修复的错误。发布是“应该”没有错误的构建,并且使用断言为用户杀死应用程序与任何其他错误行为一样糟糕。 关于c++-为

c++ - volatile 变量存储在哪里?

这个问题在这里已经有了答案:Whydoesvolatileexist?(19个回答)关闭9年前。我能知道volatile变量在内存中的存储位置吗?如果我全局声明意味着它存储在内存中的什么地方?volatileinta=10;intmain(){printf("GlobalAvalue=%d",a);return0;}如果我在函数内部局部声明意味着它存储在内存中的什么位置?intmain(){volatileinta=10;printf("LocalAvalue=%d",a);return0;}它是否存储在堆栈/RAM/数据段中?请澄清我的疑问。

c++ - 过度使用宏会影响性能吗?

我有一个很长的代码,它被调用了数百万次,我注意到,如果我将所有宏更改为内联函数,代码运行速度会快很多。你能解释一下这是为什么吗?宏不只是文本替换吗?与可以调用函数的内联函数相反? 最佳答案 宏是一种文本替换,因此通常会生成更多可执行代码。每次调用宏时,都会插入代码(好吧,不一定,宏可以为空......但原则上)。另一方面,内联函数可能与宏的工作方式相同,但它们也可能根本不是内联的。一般来说,inline关键字是一个较弱的暗示,而不是一个要求,编译器现在会根据启发式方法明智地内联函数(或将放弃这样做),主要是伪代码的数量指示。因此,内

c++ - C和C++中枚举的用途是什么

枚举是常量整数值的列表。它可以用来代替使用#define定义常量值。但除此之外,我还没有发现枚举在C和CPP中有任何实质性用途。谁能告诉我枚举的确切用途是什么。最初我认为如果我们创建一个枚举变量并分配一个不在枚举值中的值,编译器会大喊大叫。但事实并非如此。我们可以为枚举变量分配任何值。我想不出枚举的任何实质性用途。 最佳答案 枚举在编程中非常有用,因为它们使您的代码更具可读性和一致性。例如:假设我们有以下switch语句:switch(fruit){case1://codegoesherebreak;case2://codegoes

c++ - 为什么选择 & 符号作为 C++ 中引用的符号?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion有谁知道为什么选择&符号作为C++中表示引用的方式?据我所知(虽然我身边没有这本书),Stroustroup没有解释那个选择,我觉得这有点奇怪,因为相同的符号已经在C语言中用于address-of。

c# - 如何将二进制文件转换为另一种二进制表示形式,如图像

我想获取一个二进制文件(exe、msi、dll等)并能够实际“查看”二进制代码或我想要的任何基数(无论是十六进制)。我想最简单的方法就是将代码输出到一个txt文件中,这样我就可以检查它。最好和最简单的方法是什么?基本上,我希望将二进制代码转换为我的项目的图片。同样,如果我可以获取一些二进制代码,然后将其转换为二进制文件,那就太好了。您的方法是什么,我列出了C、C++和C#,因为这些似乎是最快的编程语言,我认为这可能需要一些时间。我想我对C语言的答案更感兴趣,但我主要是在寻找其背后的一些逻辑。 最佳答案 这是一种将字节打包成图像的方法

c++ - strncpy 文档问题

关于strncpy的以下内容:http://www.cplusplus.com/reference/clibrary/cstring/strncpy/,它提到了以下内容:Nonull-characterisimplicitlyappendedtotheendofdestination,sodestinationwillonlybenull-terminatedifthelengthoftheCstringinsourceislessthannum.这句话是什么意思? 最佳答案 这意味着,例如,如果您的源字符串是20个字符加上一个空终

c++ - 在 C++ 中初始化指针是强制性的吗?

在给t赋值之前,是否必须在下面的代码中初始化t?代码是否正确?voidswap(int*x,int*y){int*t;*t=*x;*x=*y;*y=*t;} 最佳答案 你不需要指针开始:voidswap(int*x,int*y){intt;//notapointer!t=*x;*x=*y;*y=t;}inta=10,b=20;swap(&a,&b);//--或者,您可能需要以下交换功能:voidswap(int&x,int&y)//parametersarereferencesnow!{intt;//notapointer!t=x;

c++ - 在 C/C++ 中不可能否定 -2147483648?

#include#includeintmain(intargc,char*argv[]){intnum=-2147483648;intpositivenum=-num;intabsval=abs(num);std::cout你好我很好奇为什么上面代码的输出是-2147483648-2147483648现在我知道-2147483648是有符号整数中最小的可表示数(假设int是32位)。我原以为只有在我们低于这个数字之后才会得到垃圾答案。但在这种情况下,+2147483648包含在32位整数系统中。那么为什么在这两种情况下都是否定的答案呢? 最佳答案